signature MAIN_STRUCTS =
sig
end

signature MAIN =
sig
  include MAIN_STRUCTS

  exception ParseFailed
  exception TypeCheckFailed
  exception OptAstFailed
  exception Ast2IrFailed
  exception SrcPtrLogicFailed
  exception EmitAssemFailed
  exception AsmPtrLogicFailed
  exception EmitProofFailed
  exception ExeFailed
  exception Success

  exception CompilationFail

  val main : File.t -> unit
  val top : string -> unit
end
